/*
 * ComboBoxFiller.java
 *
 * Created on 14. August 2007, 11:15
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package com.googlecode.oskis.library.db;
import java.sql.*;
import javax.swing.JComboBox;

/**
 * ComboBoxFiller füllt eine ComboBox mit 'ComboBoxEintrag' Objekten <br>
 * (siehe de.kksulzbach.util.ComboBoxEintrag), die aus key und Beschreibung bestehen
 * die Beschreibung wird in der Combobox dargestellt, der Key kann über das Objekt abgefragt werden
 * @author thomas
 */
public  class ComboBoxFiller {
    
    private Connection db;
    private String sqlerror;
    
    
    /** Creates a new instance of ComboBoxFiller
     *  Eine bestehende Verbindung zur Datenbank muß mit übergeben werden
     * 
     */
    public ComboBoxFiller(Connection db) {
        this.db=db;
    }
    
    
    /** 
     * füllt die übergebene ComboBox mit dem Ergebnis aus dem SQL Statement.<br>
     * Hierzu muß das SQL Statement zwei Felder in dieser Reihenfolge enthalten:<br>
     * 1. Key, 2. Beschreibungstext
     * Die Funktion liefert true bei Erfolg, false im Fehlerfall
     */
    public boolean fill(JComboBox cb,String SQL) {
        Statement st;
        ResultSet rs;
        try {
            st=db.createStatement();
            //System.out.println(SQL);
            rs=st.executeQuery(SQL);
            cb.removeAllItems();
            while(rs.next()) {
                ComboBoxEintrag ce=new ComboBoxEintrag(rs.getString(1),rs.getString(2));
                cb.addItem(ce);
            }
            rs.close();
            st.close();
        } catch (Exception e) {
            sqlerror=e.toString();
            //System.out.println(sqlerror);
            e.printStackTrace();
            return(false);
        }        
        return(true);
    }
    /**
     * Liefert im Fehlerfall die Fehlermeldung der Datenbank
     */
    public String getSQLError() {
        return(sqlerror);
    }
}
